// 相交链表
// 判断两条链表是否相交，相交返回相交节点，没有返回Null
var getIntersectionNode = function (headA, headB) {
  // p1 指向 A 链表头结点，p2 指向 B 链表头结点
  let p1 = headA, p2 = headB;
  while (p1 !== p2) {
    // p1 走一步，如果走到 A 链表末尾，转到 B 链表
    if (p1 === null) {
      p1 = headB;
    } else {
      p1 = p1.next;
    }
    // p2 走一步，如果走到 B 链表末尾，转到 A 链表
    if (p2 === null) {
      p2 = headA;
    } else {
      p2 = p2.next;
    }
  }
  console.log('p1', p1);
  return p1;
};

let a = {
  val: 3,
  next: {
    val: 5,
    next: {
      val: 6,
      next: null
    }
  }
}

let b = {
  val: 8,
  next: {
    val: 8,
    next: null
  }
}

getIntersectionNode(a, b)

// 我们可以让 p1 遍历完链表 A 之后开始遍历链表 B，
// 让 p2 遍历完链表 B 之后开始遍历链表 A，这样相当于「逻辑上」两条链表接在了一起。

